
const svgCaptcha=require('svg-captcha');
const md5=require('md5');//id
const jwt=require('jsonwebtoken');//token

const {
    TOKEN_KEY
}=require('../config');

const nodemailer=require('nodemailer');

module.exports={
    sendMail({title,html,mail}){//发送邮件
        let transporter = nodemailer.createTransport({//开启通道
            service: "qq",//qq服务
            port: 465,
            secureConnection:true,
            // secure: false, // true for 465, false for other ports
            auth: {
              user: '3139544258@qq.com', // 一般是公司的客服邮箱
              pass:'kxemgekcwvfzdehh', // 授权码
            },
          });
        const mailOptions={
            from :'3139544258@qq.com',//发件人
            to:mail,//收件人
            subject:title,//邮件标题
            html //html结构
        };

        return new Promise((resolve,reject)=>{//使用await接收，必须返回promise实例对象
            transporter.sendMail(mailOptions,(err,info)=>{
                if(err){
                    reject(err);
                }else{
                    resolve({
                        status:200,
                        info
                    })
                }
            })
        })
         
    },
    createCode(){//生成图文验证码
       return svgCaptcha.create({
            size:4,
            noise:1,//难度
            color:true,
            background:'#cc9966',
            ignoreChars:'0oi1'//忽略字符
        })
    },
    createId(username){//生成id
        const data=JSON.stringify({
            username,
            iss:'1911B',
            tim:+new Date()
        });
        return md5(data).toString();
    },
    createToken(id){//生成token
        const data=JSON.stringify({
            id,
            iss:'1911B',//签发者
            tim:+new Date(),//生成时间
            exp:+new Date()+2*3600*1000,//失效时间
        });
        return jwt.sign(data,TOKEN_KEY).toString()
    }
}